#ifndef SOLUTION_H
#define SOLUTION_H
#include<QVector>

class Solution
{
public:
    Solution();
    bool isValidSudoku(QVector<QVector<int>>& board) {
           int rows[9][9];
           int columns[9][9];
           int subboxes[3][3][9];

           memset(rows,0,sizeof(rows));
           memset(columns,0,sizeof(columns));
           memset(subboxes,0,sizeof(subboxes));
           for (int i = 0; i < 9; i++) {
               for (int j = 0; j < 9; j++) {
                   char c = board[i][j];
                   if (c != 0) {
                       int index = c - 1;
                       rows[i][index]++;
                       columns[j][index]++;
                       subboxes[i / 3][j / 3][index]++;
                       if (rows[i][index] > 1 || columns[j][index] > 1 || subboxes[i / 3][j / 3][index] > 1) {
                           return false;
                       }
                   }
               }
           }
           return true;
       }
};

#endif // SOLUTION_H
